/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dominio.servicio.impl;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dao.IDAODetallePedidoOp;
import pe.com.cotelasa.scp.dominio.common.ESTADO_REGISTRO;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioDetallePedidoOp;
import pe.com.cotelasa.scp.entidad.DetallePedidoOp;

/**
 *
 * @author usuario
 */

@Service
public class ServicioDetallePedidoOpImpl implements IServicioDetallePedidoOp, Serializable{
    private static final long serialVersionUID = -3899534497036527683L;
    @Inject
    private IDAODetallePedidoOp daoDetallePedidoOP;

    @Override
    public DetallePedidoOp obtenerDetalleOpPorArticulo(DetallePedidoOp detalle) throws ServiceException {
        try {
                return daoDetallePedidoOP.obtenerDetalleOpPorArticulo(detalle);
            
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }
    
    @Override
    public DetallePedidoOp conseguirDetallePedidoOpPorId(Integer idDetallePedidoOP) throws ServiceException {
        try {
            return daoDetallePedidoOP.obtenerEntidadPorId(DetallePedidoOp.class, idDetallePedidoOP);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }
    
    @Override
    public Collection<DetallePedidoOp> conseguirDetallesPorOp(Integer idOrdenPedido) throws ServiceException {
        try {
            Map<String, Object> parametro = new HashMap<String, Object>();
            parametro.put("idOrdenPedido.id", idOrdenPedido);
            parametro.put("estadoRegistro", "" + ESTADO_REGISTRO.ACTIVO.getValor());
            return daoDetallePedidoOP.obtenerColeccionEntidadPorFiltros(DetallePedidoOp.class, parametro);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }
    
    @Override
    public Collection<DetallePedidoOp> listarDetallesPorOpSortModelo(Integer idOrdenPedido) throws ServiceException {
        try {
            return daoDetallePedidoOP.listarDetallesPorOpSortModelo(idOrdenPedido);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }
    
}
